use std::collections::HashMap;


pub fn is_anagram(s: String, t: String) -> bool{
    if s.len() != t.len(){
        return  false;
    }

    let mut map = HashMap::new();
   

    for c in s.chars(){
        // or_insert 在hashmap中键没有值时，插入默认值，并返回这个值的可变引用
        let count = map.entry(c).or_insert(0);
        // 然后为这个可变引用的值加一。
        *count += 1;
    }

    for c in t.chars(){
        // 当t的字母匹配上s中的字母，这个字母在遍历s的时候已经被赋值为1，取出这个值的引用，再减一，就变成0.
        // 如果 没有匹配上字母，则hashmap中没有值，设置为默认值0，然后减一，此时该值为-1.
        let count = map.entry(c).or_insert(0);
        *count -= 1;

        if *count < 0{
            
            return false;
        }
    }

   
    return true;
}